package 代码随想录_补充题目.字符串反转系列;

/**
 * @author zx
 * @create 2023-02-08 23:00
 */
public class 剑指Offer58_翻转单词顺序 {
    /**
     * @return 虽然看起来费劲,但是用的自己掌握的东西
     * 和这题一样：反转字符串中的单词_151
     */
    public String reverseWords(String s) {
        if(s == ""){
            return s;
        }
        String res = "";
//        s = s.trim();// 除去开头和末尾的空白字符
        StringBuilder temp = new StringBuilder(s);
        while (temp.length() > 0 && temp.charAt(0) == ' '){
            temp.deleteCharAt(0);
        }
        while (temp.length() > 0 && temp.charAt(temp.length() - 1 ) == ' '){
            temp.deleteCharAt(temp.length() - 1);
        }
        s = temp.toString();
        String[] arr = s.split(" ");
        for(int i = arr.length - 1;i >= 0;i--){
            if(arr[i] != ""){
                String c = arr[i];
                res += c;
                if(i != 0){
                    res += " ";
                }
            }
        }
        //split(" ")方法不能分隔开连续空白符,所以这样不行
//        for(int i = arr.length - 1;i > 0;i--){
//            res = res + arr[i] + " ";
//        }
//        res += arr[0];
        return res;
    }
}
